Griffin
Description
狮鹫是联盟的主要交通工具,在艾泽拉斯的土地上散布着n个狮鹫站点,有m条有向的飞行线路,也就是构成了一张n个点m条边的有向图。这m条线路被分成了c种等级,对于其中的第i种等级,只有声望达到了wi才能乘坐狮鹫飞过这条线路。小C现在在暴风城(1号点),他要赶到暗月马戏团(n号点)参加他学长的电音表演。作为一个喜欢藏锋的健美先生,初始时他声望为0。但他实在是太健美了,以至于他每乘坐一次狮鹫(即经过一条边)就能使他的声望 +1 。为了更好地藏锋,小C不会通过其他方法来提升声望。 小C不喜欢步行,也不会开传送门,所以他不会通过除乘坐狮鹫以外的其他方法来到达另一个站点。现在他想知道是否能到达,如果能,他还想知道他最少要经过多少条边才能到达。
Input
从文件griffin.in中读入数据.
第一行三个整数n, m, c.
接下来m行,每行三个整数u, v, lv,表示有一条u到v的线路,等级为lv.
接下来一行c个整数,第i个表示wi.
Output
输出到文件griffin.out中.
若不能到达输出Impossible。
否则输出一个整数表示他最少要经过的边数。
Sample1
|
|
|
|